package com.rytx.system.refund;

import com.rytx.common.core.domain.AjaxResult;
import com.rytx.system.domain.ArtOrderAfter;
import com.rytx.system.domain.ysp.ArtOrder;

import java.math.BigDecimal;

public interface IAfterRefund {
    //执行售后逻辑
    public AjaxResult afterRefund(ArtOrderAfter artOrderAfter, ArtOrder artOrder);

    //计算补偿金额
    public BigDecimal getCompensationAmount(ArtOrderAfter artOrderAfter, ArtOrder artOrder);
    //计算退款金额
    public BigDecimal getRefundAmount(ArtOrderAfter artOrderAfter, ArtOrder artOrder);
    //退款
    public boolean refund(ArtOrderAfter artOrderAfter, ArtOrder artOrder);
    //更新订单状态
    public void updateOrderStatus(ArtOrderAfter artOrderAfter, ArtOrder artOrder);
    //结算 : 购买和 租赁不同类型的订单执行不同的执行逻辑
    public AjaxResult settle(ArtOrderAfter artOrderAfter, ArtOrder artOrder);
    //保存售后记录
    public void saveAfterRefundRecord(ArtOrderAfter artOrderAfter, ArtOrder artOrder);
}
